The technology provides decreased payload, decreased latency and conservation of bandwidth by using a new and inventive protocol method and corresponding system. The technology is specifically related to order data message entry and in particular to a Macro-based order entry methodology which, among other things, allows for reduced messaging between exchange clients and an Order Port/Gateway of an exchange.
In modern distributed systems, billions of data messages are passed between separately located devices in only fractions of a second. Although modern computing devices have larger memories, faster processors, and greater broadband capabilities, there is always a need to improve upon processing efficiency and overall latency between the devices. This can be especially true for electronic exchange systems that communicate with numerous remote devices and conduct order entry and order processing on a mass scale.
Certain modern exchange systems use the OUCH Order Entry Protocol for order entry. The OUCH protocol is a proprietary NASDAQ OMX® digital communications protocol that allows customers of electronic exchange providers to conduct business in various electronic, financial markets. With OUCH, subscribers can place, execute, or cancel orders. OUCH moreover allows subscribers to integrate electronic exchange services into their proprietary networks, giving a rather high degree of seamlessness. OUCH is a low-level, native protocol designed for high performance and minimal latency. In order to achieve optimum functional efficiency and speed, some flexibility is sacrificed.
The OUCH protocol passes logical messages, of a specific length, between the host (i.e., exchange) and the client (i.e., trader) application. All data messages sent to the host can be retransmitted in the event of a temporary hardware failure or software error. By connecting a single OUCH account to more than one machine, redundancy and fault tolerance are achieved. Moreover, OUCH ensures that data messages from customers (brokers/traders/members) are processed in the same sequence as they are received. Each new order contains a token specifying the date and the name of the account. Once a token has been used it automatically expires so it cannot be used again. When an order has been placed, executed, or canceled, and the action has been accepted by the host, an acknowledgment data message is sent to the client.
Inbound (client-to-host) messages can include, but are not limited to, the following types: Order entry, Cross order entry and Order cancellation entry. Outbound (host-to-client) messages can be more diverse, including, but not limited to: Start of day, End of day, Time stamp, Order request, Order acceptance, Order rejection, Order execution, Cancel pending, Cancel rejection, Order cancellation, Broken trade and Price correction.
The OUCH protocol is composed of logical messages passed between the OUCH host, and client applications. Each message type has a fixed message length and all messages are composed of fixed length. The data types used are numeric fields, which comprises a string of ASCII-coded digits, right-justified and zero-filled on the left; and alpha fields, which are left-justified and padded on the right with spaces.
A new order message, entered via OUCH, must specify all required fields, and the Order Entry Port must parse and validate every one of those fields. It is commonly the case that users of OUCH and similar order entry protocols (for example, the FIX protocol) will submit a series of messages that are identical except for a small subset of available fields. This duplicated information must be carried over communications infrastructure, managed by hardware in Exchange data centers, and processed by Exchange systems. With the available conventional technology, there is no way to avoid the transmission of this duplicative information by a user, and moreover, the Exchange has no way to avoid processing it. Thus, there is a need for a system that can reduce submission of duplicate information while improving latency between separate devices.